#ifdef	__cplusplus
extern "C" {
#endif

#define LABEL_SUCCESS       0
#define LABEL_FAILURE       -1
#define LABEL_MAX_NUMBER 200 // Número máximo de labels que podem ser criados.
#define LABEL_MAX_TEXT 1024

    /**
     * @brief Cria um label.
     * @param int x                     Posicao x do label criado.
     * @param int y                     Posicao y do label criado.
     * @param int font_height           Tamanho da fonte em pixels.
     * @param int r                     Cor da fonte em RGB.
     * @param int g                     Cor da fonte em RGB.
     * @param int b                     Cor da fonte em RGB.
     * @param char *text                Texto do label.
     * @return int                      Retorna o id do label ou LABEL_FAILURE em caso de falha.
     */
    extern int label_create(unsigned int x, unsigned int y, unsigned int font_height,
            unsigned char *text, unsigned int font_r, unsigned int font_g, unsigned int font_b);

    extern signed int label_destroy(signed int labelId);

    /**
     * @brief Exibe o label.
     * @param labelId                   Id do label.
     * @return int                      Retorna LABEL_SUCCESS ou LABEL_FAILURE.
     */
    extern int label_draw(int labelId);

    /**
     * @brief seta se o label pode ser visivel ou nao.
     * @param int labelId               Id do label.
     * @param char visible              true (1) ou false (0).
     * @return int                      Retorna LABEL_SUCCESS ou LABEL_FAILURE.
     */
    extern int label_setVisible(int labelId, unsigned char visible);

    extern int label_setText(int labelId, unsigned char *text);

    /**
     */
    extern int label_setColor(int labelId, unsigned int r, unsigned int g, unsigned int b);

#ifdef	__cplusplus
}
#endif
